package com.mazaiting.scheduler.util;

import org.springframework.util.StringUtils;

import java.io.IOException;
import java.io.StringReader;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

/**
 * 任务参数工具类
 *
 * @author mazaiting
 * @create_time 2022/4/6 14:52
 */
public class JobParamUtil {

    /**
     * 获取任务参数
     * 格式:
     * ```
     *  key=value
     *  key1=value1
     * ```
     * @param params 参数
     * @return 参数集合
     */
    public static Map<String, String> getJobParam(String params) {
        Map<String, String> map = new HashMap<>();
        // 如果存在参数则校验
        if (StringUtils.hasLength(params)) {
            Properties proper = new Properties();
            try {
                // 把字符串转为reader
                proper.load(new StringReader(params));
            } catch (IOException e) {
                e.printStackTrace();
                return map;
            }
            // 获取属性
            Enumeration<?> enumeration = proper.propertyNames();
            while (enumeration.hasMoreElements()) {
                String strKey = (String) enumeration.nextElement();
                String strValue = proper.getProperty(strKey);
                map.put(strKey, strValue);
            }
        }
        return map;
    }
}
